$(function (global) {  
  $.fn.scrollTo = function (options) {  
    var defaults = {  
      toT: 0,    //滚动目标位置  
      durTime: 500,  //过渡动画时间  
      delay: 30,     //定时器时间  
      callback: null   //回调函数  
    };  
    var opts = $.extend(defaults, options),  
      timer = null,  
      _this = this,  
      curTop = _this.scrollTop(),//滚动条当前的位置  
      subTop = opts.toT - curTop,    //滚动条目标位置和当前位置的差值  
      index = 0,  
      dur = Math.round(opts.durTime / opts.delay),  
      smoothScroll = function (t) {  
        index++;  
        var per = Math.round(subTop / dur);  
        if (index >= dur) {  
          _this.scrollTop(t);  
          window.clearInterval(timer);  
          if (opts.callback && typeof opts.callback == 'function') {  
            opts.callback();  
          }  
          return;  
        } else {  
          _this.scrollTop(curTop + index * per);  
        }  
      };  
    timer = window.setInterval(function () {  
      smoothScroll(opts.toT);  
    }, opts.delay);  
    return _this;  
  };  
}(window));